﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AcademiaDAO;
using AcademiaEntidades;
using System.Web.Security;

public partial class Administracion_ConsultaExamen : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Para controlar el botan para atras del navegador
        if (Session["Usuario"] == null)
            Response.Redirect("~/Publico/Login.aspx");
        if (!Page.IsPostBack)
        {
            cargarCurso();
            ViewState["Orden"] = "NombreCurso";
            cargarSesion();//Cargar los datos de session
        }

    }
    private void cargarSesion()
    {
        lblUsuarioLogueado.Text = ((Usuarios)Session["Usuario"]).Usuario;
        lblRolLogueado.Text = ((Usuarios)Session["Usuario"]).Rol;
    }
    protected void btnVolver_Click(object sender, EventArgs e)
    {
        //Vuelve a la pagina de inicio de Administracion
        Response.Redirect("~/Administracion/Administracion.aspx");
    }
    protected void btnLimpiar_Click(object sender, EventArgs e)
    {
        limpiarBus();
    }
    private void limpiarBus()
    {
        txtFechaExamen.Text = string.Empty;
        txtNombreProfesor.Text = string.Empty;
        txtApellidoProfesor.Text = string.Empty;
        txtNombreAlumno.Text = string.Empty;
        txtApellidoAlumno.Text = string.Empty;
        lblMenResultado.Text = string.Empty;
        grillaExamenes.Visible = false;
    }
    private void cargarCurso()
    {
        try
        {
            ddlCurso.DataSource = CursoDAO.obtenerCursos();
            ddlCurso.DataTextField = "Nombre";
            ddlCurso.DataValueField = "IdCurso";
            ddlCurso.DataBind();
            ddlCurso.Items.Insert(0,"(Todos)");
        }
        catch (Exception ex)
        {
            lblMenCurso.Text = ex.Message.ToString();
            lblMenCurso.ForeColor = System.Drawing.Color.Red;
        }
    }//Fin metodo cargarCurso
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        //Hago una validacion del lado del servidor
        if (!Page.IsValid)
        {
            lblMenResultado.Text = "Debe ingresar una fecha valida";
            lblMenResultado.ForeColor = System.Drawing.Color.Red;
            return;
        }
        
        cargarGrilla();
    }
    private void cargarGrilla()
    {
        //Declaro variables aux para almacenar lo que tienen los textbox
        List<ExamenConsulta> listaExamenConsulta = new List<ExamenConsulta>();
        string nomProfe = null;
        string apeProfe = null;
        string nomAlumno = null;
        string apeAlumno = null;
        DateTime? fecha = null;
        int? idCurso = null;
        if (txtNombreProfesor.Text != string.Empty)
            nomProfe = txtNombreProfesor.Text;
        if (txtNombreAlumno.Text != string.Empty)
            nomAlumno = txtNombreAlumno.Text;
        if (txtApellidoProfesor.Text != string.Empty)
            apeProfe = txtApellidoProfesor.Text;
        if (txtApellidoAlumno.Text != string.Empty)
            apeAlumno = txtApellidoAlumno.Text;
        if (txtFechaExamen.Text != string.Empty)
            fecha = DateTime.Parse(txtFechaExamen.Text);
        if (ddlCurso.SelectedIndex != 0)
            idCurso = int.Parse(ddlCurso.SelectedValue);

        try
        {
            listaExamenConsulta = ExamenDAO.obtenerTodosExamenes(ViewState["Orden"].ToString(),fecha,idCurso,nomProfe,nomAlumno,apeProfe,apeAlumno);
        }
        catch (Exception ex)
        {
            lblMenResultado.Text = ex.Message.ToString();
            lblMenResultado.ForeColor = System.Drawing.Color.Red;
        }

        grillaExamenes.DataSource = listaExamenConsulta;
        //Se establece identificador unico de la fila
        grillaExamenes.DataBind();
        grillaExamenes.Visible = true;
        if (listaExamenConsulta.Count != 0)
        {
            lblMenResultado.Text = "Busqueda Exitosa...";
            lblMenResultado.ForeColor = System.Drawing.Color.Green;
        }
        else
        {
            lblMenResultado.Text = "No hay resultados para esa busqueda...";
            lblMenResultado.ForeColor = System.Drawing.Color.Red;
            
        }
    }//Fin del metodo cargarGrilla
    protected void grillaExamenes_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grillaExamenes.PageIndex = e.NewPageIndex;
        cargarGrilla();
        lblMenResultado.Text = string.Empty;
    }
    protected void grillaExamenes_Sorting(object sender, GridViewSortEventArgs e)
    {
        ViewState["Orden"] = e.SortExpression;
        cargarGrilla();
        lblMenResultado.Text = string.Empty;
    }
    protected void btnCerrarSesion_Click(object sender, EventArgs e)
    {
        ////Eliminar la cookie
        //Context.Response.Cookies[FormsAuthentication.FormsCookieName].Expires = DateTime.Now;
        ////Terminar la Sesion
        //FormsAuthentication.SignOut();
        //Response.Redirect("~/Publico/InicioWF.aspx");

        //************************************************************
        //Otra forma de eliminar la cookie del equipo del usuario
        if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
        {
            HttpCookie paraBorrar = new HttpCookie(FormsAuthentication.FormsCookieName);
            paraBorrar.Expires = DateTime.Now.AddDays(-1d);
            Response.Cookies.Add(paraBorrar);
        }
        FormsAuthentication.SignOut();
        Session.Abandon();
        Response.Redirect("~/Publico/InicioWF.aspx");
    }
}